using chc 6
present CV LDAs, have testing/training if need be
graphed LDAs are all the points.
fit_full_species_man$pca_summary
## Importance of first k=7 (out of 35) components:
## PC1 PC2 PC3 PC4 PC5 PC6 PC7
## Standard deviation 1.0413 0.7144 0.51001 0.38099 0.34918 0.30663 0.28705
## Proportion of Variance 0.3871 0.1822 0.09287 0.05183 0.04354 0.03357 0.02942
## Cumulative Proportion 0.3871 0.5694 0.66225 0.71408 0.75762 0.79119 0.82061
summary(manova(as.matrix(data[,4:cols]) ~ hostRace * sex *site, data = data), test = "Wilks")
## Df Wilks approx F num Df den Df Pr(>F)
## hostRace 4 0.04507 53.399 28 1097.5 < 2.2e-16 ***
## sex 1 0.71370 17.421 7 304.0 < 2.2e-16 ***
## site 8 0.26950 8.085 56 1642.4 < 2.2e-16 ***
## hostRace:sex 4 0.80887 2.375 28 1097.5 8.147e-05 ***
## hostRace:site 1 0.96866 1.405 7 304.0 0.202640
## sex:site 7 0.77071 1.663 49 1547.8 0.002979 **
## hostRace:sex:site 1 0.97168 1.266 7 304.0 0.266990
## Residuals 310
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Reference
## Prediction Cingulata Cornivora Mendax pom Zepheria
## Cingulata 29 0 0 0 0
## Cornivora 1 5 0 1 0
## Mendax 0 0 60 8 2
## pom 0 0 1 214 0
## Zepheria 0 0 0 1 15
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 9.584570e-01 9.213168e-01 9.312796e-01 9.771049e-01 6.646884e-01
## AccuracyPValue McnemarPValue
## 2.679678e-40 NaN
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 5.164179e-01 4.800429e-01 4.614714e-01 5.710717e-01 1.432836e-01
## AccuracyPValue McnemarPValue
## 4.176925e-58 NaN
summary(manova(as.matrix(data[,4:cols]) ~ hostRace * site * sex, data = data), test = "Wilks")
## Df Wilks approx F num Df den Df Pr(>F)
## hostRace 1 0.70245 12.2841 7 203.00 4.504e-13 ***
## site 4 0.37641 8.1524 28 733.35 < 2.2e-16 ***
## sex 1 0.48494 30.8012 7 203.00 < 2.2e-16 ***
## hostRace:site 2 0.72182 5.1338 14 406.00 6.340e-09 ***
## hostRace:sex 1 0.95257 1.4440 7 203.00 0.189418
## site:sex 4 0.77940 1.8745 28 733.35 0.004284 **
## hostRace:site:sex 1 0.92648 2.3014 7 203.00 0.028089 *
## Residuals 209
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Reference
## Prediction Apple Haw
## Apple 80 22
## Haw 26 96
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.857143e-01 5.693688e-01 7.261263e-01 8.375728e-01 5.267857e-01
## AccuracyPValue McnemarPValue
## 8.355647e-16 6.650055e-01
## Reference
## Prediction Apple_Female Apple_Male Haw_Female Haw_Male
## Apple_Female 51 5 17 2
## Apple_Male 1 21 1 8
## Haw_Female 19 1 44 5
## Haw_Male 0 8 4 37
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 6.830357e-01 5.662230e-01 6.177391e-01 7.434095e-01 3.169643e-01
## AccuracyPValue McnemarPValue
## 3.310270e-29 5.581411e-01
# no interaction because missing males at MtPleasant
summary(manova(as.matrix(data[,4:cols]) ~ sex + site, data = data), test = "Wilks")
## Df Wilks approx F num Df den Df Pr(>F)
## sex 1 0.74708 0.67708 5 10 0.6507
## site 1 0.83749 0.38808 5 10 0.8461
## Residuals 14
## Reference
## Prediction Zepheria_Female Zepheria_Male
## Zepheria_Female 5 3
## Zepheria_Male 4 5
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.5882353 0.1793103 0.3292472 0.8155630 0.5294118
## AccuracyPValue McnemarPValue
## 0.4062810 1.0000000
## Reference
## Prediction Zepheria_Female_EastLansing
## Zepheria_Female_EastLansing 2
## Zepheria_Female_MtPleasant 0
## Zepheria_Male_EastLansing 4
## Reference
## Prediction Zepheria_Female_MtPleasant
## Zepheria_Female_EastLansing 2
## Zepheria_Female_MtPleasant 1
## Zepheria_Male_EastLansing 0
## Reference
## Prediction Zepheria_Male_EastLansing
## Zepheria_Female_EastLansing 1
## Zepheria_Female_MtPleasant 5
## Zepheria_Male_EastLansing 2
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.29411765 -0.05699482 0.10313551 0.55958272 0.47058824
## AccuracyPValue McnemarPValue
## 0.95792652 0.03207164
summary(manova(as.matrix(data[,4:cols]) ~ sex * site, data = data), test = "Wilks")
## Df Wilks approx F num Df den Df Pr(>F)
## sex 1 0.57727 6.1024 6 50 7.541e-05 ***
## site 2 0.10716 17.1232 12 100 < 2.2e-16 ***
## sex:site 2 0.74705 1.3082 12 100 0.2258
## Residuals 55
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Reference
## Prediction Mendax_Female Mendax_Male
## Mendax_Female 20 15
## Mendax_Male 13 13
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.54098361 0.07072905 0.40849889 0.66935590 0.54098361
## AccuracyPValue McnemarPValue
## 0.55241652 0.85010674
## Reference
## Prediction Mendax_Female_Fenville Mendax_Female_OtisLake
## Mendax_Female_Fenville 7 1
## Mendax_Female_OtisLake 1 5
## Mendax_Female_Sewanee 0 2
## Mendax_Male_Fenville 6 0
## Mendax_Male_OtisLake 0 1
## Mendax_Male_Sewanee 0 0
## Reference
## Prediction Mendax_Female_Sewanee Mendax_Male_Fenville
## Mendax_Female_Fenville 0 5
## Mendax_Female_OtisLake 1 0
## Mendax_Female_Sewanee 4 1
## Mendax_Male_Fenville 0 5
## Mendax_Male_OtisLake 1 1
## Mendax_Male_Sewanee 4 0
## Reference
## Prediction Mendax_Male_OtisLake Mendax_Male_Sewanee
## Mendax_Female_Fenville 0 0
## Mendax_Female_OtisLake 1 2
## Mendax_Female_Sewanee 2 3
## Mendax_Male_Fenville 0 1
## Mendax_Male_OtisLake 1 1
## Mendax_Male_Sewanee 2 3
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.409836066 0.283523654 0.285504382 0.543223627 0.229508197
## AccuracyPValue McnemarPValue
## 0.001280557 NaN
summary(manova(as.matrix(data[,4:cols]) ~ sex * site, data = data), test = "Wilks")
## Df Wilks approx F num Df den Df Pr(>F)
## sex 1 0.80383 1.2813 4 21 0.308955
## site 2 0.39036 3.1529 8 42 0.006927 **
## sex:site 2 0.66131 1.2059 8 42 0.319040
## Residuals 24
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Reference
## Prediction Cingulata_Female Cingulata_Male
## Cingulata_Female 8 6
## Cingulata_Male 7 9
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.5666667 0.1333333 0.3742735 0.7453925 0.5000000
## AccuracyPValue McnemarPValue
## 0.2923324 1.0000000
## Reference
## Prediction Cingulata_Female_Fenville
## Cingulata_Female_Fenville 1
## Cingulata_Female_SouthBend 0
## Cingulata_Female_Urbana 0
## Cingulata_Male_Fenville 1
## Cingulata_Male_SouthBend 0
## Cingulata_Male_Urbana 1
## Reference
## Prediction Cingulata_Female_SouthBend Cingulata_Female_Urbana
## Cingulata_Female_Fenville 3 0
## Cingulata_Female_SouthBend 2 0
## Cingulata_Female_Urbana 4 1
## Cingulata_Male_Fenville 0 0
## Cingulata_Male_SouthBend 0 0
## Cingulata_Male_Urbana 1 1
## Reference
## Prediction Cingulata_Male_Fenville Cingulata_Male_SouthBend
## Cingulata_Female_Fenville 0 4
## Cingulata_Female_SouthBend 0 1
## Cingulata_Female_Urbana 0 1
## Cingulata_Male_Fenville 0 1
## Cingulata_Male_SouthBend 0 1
## Cingulata_Male_Urbana 0 2
## Reference
## Prediction Cingulata_Male_Urbana
## Cingulata_Female_Fenville 0
## Cingulata_Female_SouthBend 2
## Cingulata_Female_Urbana 0
## Cingulata_Male_Fenville 2
## Cingulata_Male_SouthBend 0
## Cingulata_Male_Urbana 0
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.17241379 0.04000000 0.05845608 0.35774755 0.34482759
## AccuracyPValue McnemarPValue
## 0.98826571 NaN
There is only one site
# no site because only sampled at one site.
summary(manova(as.matrix(data[,4:cols]) ~ sex, data = data), test = "Wilks")
## Df Wilks approx F num Df den Df Pr(>F)
## sex 1 0.54944 0.82004 2 2 0.5494
## Residuals 3
## Reference
## Prediction Cornivora_Female Cornivora_Male
## Cornivora_Female 0 2
## Cornivora_Male 0 2
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.50000000 0.00000000 0.06758599 0.93241401 1.00000000
## AccuracyPValue McnemarPValue
## 1.00000000 0.47950012
## Apple_Female Apple_Male Cingulata_Female Cingulata_Male
## Apple_Female 0.0000000
## Apple_Male 1.1052241 0.0000000
## Cingulata_Female 1.4738114 1.6036342 0.0000000
## Cingulata_Male 1.4051571 1.6128575 0.1130547 0.0000000
## Cornivora_Female 1.8164505 1.6514454 0.4825512 0.5956054
## Cornivora_Male 2.3568964 1.7473686 1.3312107 1.4407462
## Haw_Female 0.5292825 1.5234184 1.9508336 1.8698619
## Haw_Male 0.6482415 0.5290546 1.6459586 1.6184269
## Mendax_Female 1.1742028 2.0634150 1.2374012 1.1243501
## Mendax_Male 1.0269548 1.8389388 1.0200228 0.9078379
## Zepheria_Female 2.2810030 3.3164335 2.4854319 2.3757562
## Zepheria_Male 2.3942415 3.4468577 2.6586999 2.5484713
## Cornivora_Female Cornivora_Male Haw_Female Haw_Male
## Apple_Female
## Apple_Male
## Cingulata_Female
## Cingulata_Male
## Cornivora_Female 0.0000000
## Cornivora_Male 0.8731903 0.0000000
## Haw_Female 2.3257992 2.8860880 0.0000000
## Haw_Male 1.8371458 2.1364704 1.0022950 0.0000000
## Mendax_Female 1.7199319 2.5456134 1.3364646 1.7570533
## Mendax_Male 1.5002006 2.3102051 1.2814072 1.5661386
## Zepheria_Female 2.9567427 3.8164525 2.1620829 2.9257376
## Zepheria_Male 3.1317505 3.9891585 2.2408291 3.0416391
## Mendax_Female Mendax_Male Zepheria_Female Zepheria_Male
## Apple_Female
## Apple_Male
## Cingulata_Female
## Cingulata_Male
## Cornivora_Female
## Cornivora_Male
## Haw_Female
## Haw_Male
## Mendax_Female 0.0000000
## Mendax_Male 0.2497539 0.0000000
## Zepheria_Female 1.3207469 1.5704754 0.0000000
## Zepheria_Male 1.4794064 1.7289277 0.1809107 0.0000000
** should I calc slope for each host race pair? or only two groups as shown below?
pomonella == y ~ -0.8633 + 1.4937 * LD2.mean
rest == y ~ 1.8431 + 1.5561 * LD2.mean
these slopes are very similar. Just different intercepts. relationship btwn axes is the same for all species, but the pomonella host races have greater LD2 values compared to the other species. Also female to male differentiation flows along the same slope except the relationship is reversed in zepheria and cingulata. Cingulata, zepheria, and mendax have small sex diff. Pomonella has great sex differences. Cornivora look to have great sex differences but further sampling will be needed to confrim.
##
## Call:
## lm(formula = LD1.mean ~ LD2.mean, data = .)
##
## Residuals:
## 1 2 3 4
## 0.40664 -0.10011 -0.08027 -0.22626
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.8633 0.2246 -3.843 0.0615 .
## LD2.mean 1.4937 0.5724 2.609 0.1208
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3413 on 2 degrees of freedom
## Multiple R-squared: 0.7729, Adjusted R-squared: 0.6594
## F-statistic: 6.808 on 1 and 2 DF, p-value: 0.1208
##
## Call:
## lm(formula = LD1.mean ~ LD2.mean, data = .)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.48301 -0.15745 0.06621 0.23799 0.31705
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.8431 0.1729 10.659 4.02e-05 ***
## LD2.mean 1.5561 0.1606 9.686 6.94e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3161 on 6 degrees of freedom
## Multiple R-squared: 0.9399, Adjusted R-squared: 0.9299
## F-statistic: 93.83 on 1 and 6 DF, p-value: 6.944e-05
theta = tan_inverse (slope)
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
I think the slope is given below in radians? y1, x1= always the female and y0 an x0 are always males.it should’t matter though…
** need to add mcmc from Jeff’s code ****
# apple
ang = centroids %>% filter(host_Species == "Apple")
ang
## host_Species sex LD1.mean LD2.mean
## 1 Apple Female -0.115682 0.2282819
## 2 Apple Male -1.160544 -0.1319735
y1 = ang$LD2.mean[1] # female y
y0 = ang$LD2.mean[2] #male y
x1 = ang$LD1.mean[1] # female x
x0 = ang$LD1.mean[2] #male x
slope = (y1 - y0)/(x1 - x0)
slope
## [1] 0.3447876
theta = atan(slope)
theta
## [1] 0.3320237
apple = cbind(slope,theta)
apple = as.data.frame(apple)
apple$host = "apple"
apple
## slope theta host
## 1 0.3447876 0.3320237 apple
# haw
ang = centroids %>% filter(host_Species == "Haw")
ang
## host_Species sex LD1.mean LD2.mean
## 1 Haw Female 0.1114762 0.7063395
## 2 Haw Male -0.7638430 0.2180654
y1 = ang$LD2.mean[1] # female y
y0 = ang$LD2.mean[2] #male y
x1 = ang$LD1.mean[1] # female x
x0 = ang$LD1.mean[2] #male x
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
haw = cbind(slope,theta)
haw = as.data.frame(haw)
haw$host = "haw"
haw
## slope theta host
## 1 0.5578241 0.5088304 haw
# zepheria
ang = centroids %>% filter(host_Species == "Zepheria")
ang
## host_Species sex LD1.mean LD2.mean
## 1 Zepheria Female 2.153432 -0.004308698
## 2 Zepheria Male 2.276472 0.128317729
y1 = ang$LD2.mean[1] # female y
y0 = ang$LD2.mean[2] #male y
x1 = ang$LD1.mean[1] # female x
x0 = ang$LD1.mean[2] #male x
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
Zepheria = cbind(slope,theta)
Zepheria = as.data.frame(Zepheria)
Zepheria$host = "Zepheria"
Zepheria
## slope theta host
## 1 1.077911 0.8228755 Zepheria
# mendax
ang = centroids %>% filter(host_Species == "Mendax")
ang
## host_Species sex LD1.mean LD2.mean
## 1 Mendax Female 0.8877174 -0.3815885
## 2 Mendax Male 0.6495075 -0.4566423
y1 = ang$LD2.mean[1] # female y
y0 = ang$LD2.mean[2] #male y
x1 = ang$LD1.mean[1] # female x
x0 = ang$LD1.mean[2] #male x
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
Mendax = cbind(slope,theta)
Mendax = as.data.frame(Mendax)
Mendax$host = "Mendax"
Mendax
## slope theta host
## 1 0.3150745 0.3052286 Mendax
# cingulata
ang = centroids %>% filter(host_Species == "Cingulata")
ang
## host_Species sex LD1.mean LD2.mean
## 1 Cingulata Female -0.002386062 -1.241168
## 2 Cingulata Male 0.079528433 -1.163249
y1 = ang$LD2.mean[1] # female y
y0 = ang$LD2.mean[2] #male y
x1 = ang$LD1.mean[1] # female x
x0 = ang$LD1.mean[2] #male x
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
Cingulata = cbind(slope,theta)
Cingulata = as.data.frame(Cingulata)
Cingulata$host = "Cingulata"
Cingulata
## slope theta host
## 1 0.9512238 0.7604056 Cingulata
# Cornivora
ang = centroids %>% filter(host_Species == "Cornivora")
ang
## host_Species sex LD1.mean LD2.mean
## 1 Cornivora Female -0.353129 -1.572582
## 2 Cornivora Male -1.170673 -1.879313
y1 = ang$LD2.mean[1] # female y
y0 = ang$LD2.mean[2] #male y
x1 = ang$LD1.mean[1] # female x
x0 = ang$LD1.mean[2] #male x
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
Cornivora = cbind(slope,theta)
Cornivora = as.data.frame(Cornivora)
Cornivora$host = "Cornivora"
Cornivora
## slope theta host
## 1 0.3751856 0.3589334 Cornivora
dort = rbind(apple, haw, Zepheria, Mendax, Cingulata, Cornivora)
## slope theta host
## 1 0.3447876 0.3320237 apple
## 2 0.5578241 0.5088304 haw
## 3 1.0779109 0.8228755 Zepheria
## 4 0.3150745 0.3052286 Mendax
## 5 0.9512238 0.7604056 Cingulata
## 6 0.3751856 0.3589334 Cornivora
## Apple Cingulata Cornivora Haw Mendax Zepheria
## Apple 0.0000000
## Cingulata 1.4033491 0.0000000
## Cornivora 2.0032753 1.2135566 0.0000000
## Haw 0.4249177 1.7220298 2.4226543 0.0000000
## Mendax 1.3458377 1.0795241 2.2701432 1.3896262 0.0000000
## Zepheria 2.6725073 2.5118282 3.7253673 2.5230348 1.5093639 0.0000000
# all centroids
centroids
## host_species LD1.mean LD2.mean
## 1 Apple -0.46068354 0.10932960
## 2 Cingulata 0.03857119 -1.20220891
## 3 Cornivora -1.00716397 -1.81796668
## 4 Haw -0.27425766 0.49116784
## 5 Mendax 0.77837515 -0.41603945
## 6 Zepheria 2.21133283 0.05810374
# apple cing
y1 = centroids$LD2.mean[1] # apple y
x1 = centroids$LD1.mean[1] # apple x
y0 = centroids$LD2.mean[2] # cing y
x0 = centroids$LD1.mean[2] # cing x
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
apple_cing = as.data.frame(cbind(slope,theta))
apple_cing$host = "apple_cing"
# apple corn
y1 = centroids$LD2.mean[1] # apple y
x1 = centroids$LD1.mean[1] # apple x
y0 = centroids$LD2.mean[3] # corn y
x0 = centroids$LD1.mean[3] # corn x
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
apple_corn = as.data.frame(cbind(slope,theta))
apple_corn$host = "apple_corn"
# apple haw
y1 = centroids$LD2.mean[1] # apple y
x1 = centroids$LD1.mean[1] # apple x
y0 = centroids$LD2.mean[4] # haw y
x0 = centroids$LD1.mean[4] # haw x
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
apple_haw = as.data.frame(cbind(slope,theta))
apple_haw$host = "apple_haw"
# apple mendax
y1 = centroids$LD2.mean[1] # apple y
x1 = centroids$LD1.mean[1] # apple x
y0 = centroids$LD2.mean[5] # mendax y
x0 = centroids$LD1.mean[5] # mendax x
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
apple_mendax = as.data.frame(cbind(slope,theta))
apple_mendax$host = "apple_mendax"
# apple zepheria
y1 = centroids$LD2.mean[1] # apple y
x1 = centroids$LD1.mean[1] # apple x
y0 = centroids$LD2.mean[6] # zeph y
x0 = centroids$LD1.mean[6] # zeph x
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
apple_zeph = as.data.frame(cbind(slope,theta))
apple_zeph$host = "apple_zeph"
# cingulata cornivora
y1 = centroids$LD2.mean[2] # cing y
x1 = centroids$LD1.mean[2] # cing x
y0 = centroids$LD2.mean[3] # corn y
x0 = centroids$LD1.mean[3] # corn x
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
cing_corn = as.data.frame(cbind(slope,theta))
cing_corn$host = "cing_corn"
# cingulata haw
y1 = centroids$LD2.mean[2] # cing y
x1 = centroids$LD1.mean[2] # cing x
y0 = centroids$LD2.mean[4] # haw y
x0 = centroids$LD1.mean[4] # haw x
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
cing_haw = as.data.frame(cbind(slope,theta))
cing_haw$host = "cing_haw"
# cingulata mendax
y1 = centroids$LD2.mean[2] # cing y
x1 = centroids$LD1.mean[2] # cing x
y0 = centroids$LD2.mean[5] # mendax y
x0 = centroids$LD1.mean[5] # mendax x
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
cing_mendax = as.data.frame(cbind(slope,theta))
cing_mendax$host = "cing_mendax"
# cingulata zepheria
y1 = centroids$LD2.mean[2] # cing y
x1 = centroids$LD1.mean[2] # cing x
y0 = centroids$LD2.mean[6] # zeph y
x0 = centroids$LD1.mean[6] # zeph x
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
cing_zeph = as.data.frame(cbind(slope,theta))
cing_zeph$host = "cing_zeph"
# cornivora haw
y1 = centroids$LD2.mean[3] # corn y
x1 = centroids$LD1.mean[3] # corn x
y0 = centroids$LD2.mean[4] # haw y
x0 = centroids$LD1.mean[4] # haw x
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
corn_haw = as.data.frame(cbind(slope,theta))
corn_haw$host = "corn_haw"
# cornivora mendax
y1 = centroids$LD2.mean[3] # corn y
x1 = centroids$LD1.mean[3] # corn x
y0 = centroids$LD2.mean[5] # mendax y
x0 = centroids$LD1.mean[5] # mendax x
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
corn_mendax = as.data.frame(cbind(slope,theta))
corn_mendax$host = "corn_mendax"
# cornivora zeph
y1 = centroids$LD2.mean[3] # corn y
x1 = centroids$LD1.mean[3] # corn x
y0 = centroids$LD2.mean[6] # zeph y
x0 = centroids$LD1.mean[6] # zeph x
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
corn_zeph = as.data.frame(cbind(slope,theta))
corn_zeph$host = "corn_zeph"
# haw mendax
y1 = centroids$LD2.mean[4] # haw y
x1 = centroids$LD1.mean[4] # haw x
y0 = centroids$LD2.mean[5] # mendax y
x0 = centroids$LD1.mean[5] # mendax x
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
haw_mendax = as.data.frame(cbind(slope,theta))
haw_mendax$host = "haw_mendax"
# haw zeph
y1 = centroids$LD2.mean[4] # haw y
x1 = centroids$LD1.mean[4] # haw x
y0 = centroids$LD2.mean[6] # zeph y
x0 = centroids$LD1.mean[6] # zeph x
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
haw_zeph = as.data.frame(cbind(slope,theta))
haw_zeph$host = "haw_zeph"
# mendax zeph
y1 = centroids$LD2.mean[5] # mendax y
x1 = centroids$LD1.mean[5] # mendax x
y0 = centroids$LD2.mean[6] # zeph y
x0 = centroids$LD1.mean[6] # zeph x
slope = (y1 - y0)/(x1 - x0)
theta = atan(slope)
mendax_zeph = as.data.frame(cbind(slope,theta))
mendax_zeph$host = "mendax_zeph"
dart = rbind(apple_cing, apple_corn,apple_haw,apple_mendax,apple_zeph,cing_corn,cing_haw, cing_mendax, cing_zeph,
corn_haw,corn_mendax,corn_zeph,haw_mendax, haw_zeph, mendax_zeph)
## slope theta host
## 1 -2.62699272 -1.20706975 apple_cing
## 2 3.52674346 1.29450088 apple_corn
## 3 2.04820404 1.11660687 apple_haw
## 4 -0.42400659 -0.40102892 apple_mendax
## 5 -0.01917124 -0.01916889 apple_zeph
## 6 0.58882765 0.53216403 cing_corn
## 7 -5.41310945 -1.38811916 cing_haw
## 8 1.06267268 0.81577303 cing_mendax
## 9 0.58005104 0.52562199 cing_zeph
## 10 3.15065444 1.26345876 corn_haw
## 11 0.78515627 0.66562412 corn_mendax
## 12 0.58290268 0.52775308 corn_zeph
## 13 -0.86184592 -0.71133116 haw_mendax
## 14 -0.17422987 -0.17249832 haw_zeph
## 15 0.33088429 0.31954480 mendax_zeph